package org.veloxbot.api.internals.randoms;

import org.veloxbot.api.internals.concurrent.LoopTask;

/**
 * @author Velox
 */
public abstract class RandomEvent extends LoopTask {

	public RandomEvent() {
		RandomHandler.randoms.add(this);
	}

	/**
	 * The name of the random event.
	 *
	 * @return The name of the random event.
	 */
	public abstract String name();

	/**
	 * The author of the random event solver.
	 *
	 * @return The author of the random event solver.
	 */
	public abstract String author();

	/**
	 * Checks whether to execute the random event or not.
	 *
	 * @return <t>true</t> if the random event should be execute, otherwise <t>false</t>.
	 */
	public abstract boolean validate();
}
